<template>
  <div class="page-privacy-agreement">
    <h1 class="title">公式功能函数使用指南</h1>
    <!-- <p class="date-update">本版更新日期: 2021年2月20日</p> -->
    <h2 class="title-lv2">
      函数(func): func([exp1,exp2,...]) 函数表达必须是
      “字符串(...)”形式。允许函数名和“（）”中间存在空格。括号中的参数通过“，”间隔，参数类型必须跟函数定义一致。包括以下这些函数:
    </h2>

    <h3 class="title-lv2">Nebula</h3>
    <ul class="content-item">
      <li>
        if（bool,exp1,exp2）: 如果bool为true，则该函数返回值为exp1,否则为exp2.
        bool可以为不同类型的值。当bool不为布尔值时:
      </li>
      <ul>
        <li>bool结果类型为数值: 等同于bool != 0</li>
        <li>bool结果类型为字符串: 等同于bool != ""</li>
        <li>bool为空: 等同于false。</li>
        <li>定义: if(bool, exp1, exp2)</li>
        <li>示例: if(2 > 1, 2, 1) → 2</li>
        <li>示例: if(0, 0, 1) → 1</li>
      </ul>
    </ul>
    <h3 class="title-lv2">Math</h3>
    <ul class="content-item">
      <li>
        number(var1):允许1个参数，参数必须是可以转换为数值类型的，返回数值类型。0个参数时返回0.
        中文名“数值（）”
      </li>
      <ul>
        <li>定义: number(var1), exp1需要是可以转换成数值类型的变量</li>
        <li>示例: number('123') → 123</li>
      </ul>
      <li>
        sum(num1, [
        num2，....]):允许1-n个参数，每个参数必须是数值类型，返回数值类型。0个参数时返回0.
        中文名“总和（）”，“求和（）”
      </li>
      <ul>
        <li>定义: sum(num1,num2[, num3, ...])</li>
        <li>示例: sum(1,3) → 4</li>
        <li>示例: sum(c1, 1, 2) → c1 + 1 + 2</li>
      </ul>
      <li>
        average(num1[,num2,...]):允许1-n个参数，每个参数必须是数值类型，返回数值类型。中文名“求平均（）”，“平均值（）”，“平均（）”
      </li>
      <ul>
        <li>定义: average(num1[,num2,...])</li>
        <li>示例: average(1, 3) → 2</li>
        <li>示例: average(1, 3 + 2, c1) → (1 + (3+2) + c1) / 3 = 3</li>
      </ul>
      <li>
        power(num1,
        num2):允许2个参数，每个参数必须是数值类型，返回数值类型。如果第一个参数为负值，则第二个参数必须为整数
      </li>
      <ul>
        <li>定义: power(exp1, exp2)</li>
        <li>示例: power(2, 3) → 2 ^ 3 = 8</li>
      </ul>
      <li>
        sqrt(num):允许1个参数，每个参数必须是数值类型,且大于等于0，返回数值类型
      </li>
      <ul>
        <li>定义: sqrt(num)</li>
        <li>示例: sqrt(2) → 1.4142135623730951</li>
      </ul>
      <li>
        log(num1[,num2 =
        Math.E]):允许1-2个参数，每个参数必须是数值类型，且必须大于0，返回数值类型。如果第二个参数没有则返回以E
        为底的下的第一个参数值
      </li>
      <ul>
        <li>定义: log(num1[,num2 = Math.E]):</li>
        <li>示例: log(10) → 2.302585092994046</li>
        <li>示例: log(8, 2) → 3</li>
      </ul>
      <li>abs(num):允许1个参数，参数必须是数值类型</li>
      <ul>
        <li>定义: abs(num)</li>
        <li>示例: abs(1) → 1</li>
        <li>示例: abs(-0.5) → 0.5</li>
      </ul>
      <li>floor(num):允许1个参数，参数必须是数值类型。向下取整</li>
      <ul>
        <li>定义: floor(num)</li>
        <li>示例: floor(1.5) → 1</li>
        <li>示例: floor(-0.4) → -1</li>
      </ul>
      <li>round(num):允许1个参数，参数必须是数值类型。四舍五入</li>
      <ul>
        <li>定义: round(num)</li>
        <li>示例: round(1.5) → 2</li>
        <li>示例: round(-0.4) → 0</li>
      </ul>
      <li>ceiling(num):允许1个参数，参数必须是数值类型。向上取整</li>
      <ul>
        <li>定义: ceiling(num)</li>
        <li>示例: ceiling(1.5) → 2</li>
        <li>示例: ceiling(-0.4) → 0</li>
      </ul>
      <li>int(num):允许1个参数，参数必须是数值类型，返回数值类型</li>
      <ul>
        <li>定义: int(num)</li>
        <li>示例: int(1.5) → 2</li>
        <li>示例: int(-0.4) → -1</li>
      </ul>
      <li>
        max(num1[,num2,num3,num4]):允许1到多个参数，参数必须是数值类型，返回数值类型。
        若字段为字符串，则按照字母表顺序排序
      </li>
      <ul>
        <li>定义: max(num1[,num2,num3,...]):</li>
        <li>示例: max(1,2) → 2</li>
        <li>示例: max(2,3,4) → 4</li>
      </ul>
      <li>
        min(num1[,num2,num3,num4]):允许1到多个参数，参数必须是数值类型，返回数值类型。若字段为字符串，则按照字母表顺序排序
      </li>
      <ul>
        <li>定义: min(num1,num2[,num3,...]):</li>
        <li>示例: min(1,2) → 1</li>
        <li>示例: min(2,3,4) → 2</li>
      </ul>
    </ul>

    <h3 class="title-lv2">Aggregation</h3>
    <ul class="content-item">
      <li>
        aggr_max(col):允许一个参数，比如是字段名，该字段必须是数值字段，若字段为字符串，则按照字母表顺序排列
      </li>
      <ul>
        <li>定义: aggr_max(col)</li>
        <li>示例: aggr_max(c1)</li>
      </ul>
      <li>
        aggr_min(col):允许一个参数，比如是字段名，该字段必须是数值字段，若字段为字符串，则按照字母表顺序排序
      </li>
      <ul>
        <li>定义: aggr_min(col)</li>
        <li>示例: aggr_min(c1)</li>
      </ul>
      <li>
        aggr_average(col):允许一个参数，比如是字段名，该字段必须是数值字段
      </li>
      <ul>
        <li>定义: aggr_average(col)</li>
        <li>示例: aggr_average(c1)</li>
      </ul>
      <li>aggr_sum(col):允许一个参数，比如是字段名，该字段必须是数值字段</li>
      <ul>
        <li>定义: aggr_sum(col)</li>
        <li>示例: aggr_sum(c1)</li>
      </ul>
    </ul>

    <h3 class="title-lv2">Time</h3>
    <ul class="content-item">
      <li>
        date([var]):允许0-1个参数。如果没有参数则返回当前日期，Time.date() →
        Time.date('2021-05-19')。如果参数为时间戳或者字符串则转换为“YYYY-MM-DD”格式的时间戳。其他类型的参数无效。中文名“日期（）”
      </li>
      <ul>
        <li>定义: date([exp1])</li>
        <li>示例: date() → date('2021-05-28')</li>
        <li>示例: date('2020-01-01 19:00:01.231') → 2020-01-01</li>
      </ul>
      <li>
        time([var]):
        允许0-1个参数。如果没有参数则返回当前时间，精确到豪秒，Time.time() →
        Time.time('2021-05-19
        14:53:21.012')。如果参数为时间戳或者字符串则转换为相应格式的时间戳。其他类型的参数无效。中文名“时间（）”
      </li>
      <ul>
        <li>定义: time([exp1])</li>
        <li>示例: time() → time('2021-05-19 14:53:21.012')</li>
        <li>示例: time('2020-01-01') → 2020-01-01 00:00:00.000</li>
      </ul>
      <li>now(): 允许0个参数，等同于time()。中文名“现在（）”</li>
      <ul>
        <li>定义: now()</li>
        <li>示例: now() → time('2021-05-19 14:53:21.012')</li>
      </ul>
      <li>
        timeadd(timestamp, int, str):允许3个参数，返回时间戳.
        如果timestamp不是标准时间戳格式则进行格式转换，str为时间单位，可以是year,y,month,m,day,d,hour,h,minute,min,second,s,millisecond,ms
      </li>
      <ul>
        <li>定义: timeadd(timestamp, int, str)</li>
        <li>
          示例: timeadd(time('2021-05-19 14:53:21.012'), 2, 'h') → 2021-05-19
          16:53:21.012
        </li>
        <li>示例: timeadd('2021-01-01', 2, 'day') → date('2021-01-03')</li>
      </ul>
    </ul>

    <h3 class="title-lv2">String</h3>
    <ul class="content-item">
      <li>
        string([var]):允许1个参数，返回字符串。中文名“字符（）”，“字符串（）”
      </li>
      <ul>
        <li>定义: string(var)</li>
        <li>示例: string(123) → "123"</li>
        <li>示例: string(date('2019-05-02 23:00:01.023')) → "2019-05-02"</li>
      </ul>
      <li>
        concat(str1,str2[,str3,
        ...]):允许0-n个参数，每个参数必须是字符串类型或者可以转换为字符串，返回字符串。中文名“拼接（）”，“合并（）”
      </li>
      <ul>
        <li>定义: concat(str1,str2[,str3, ...])</li>
        <li>示例: concat('123', 'abc') → "123abc"</li>
      </ul>
      <li>
        replace(str1, str2,
        str3):允许三个参数，每个参数必须是字符串类型，返回将str1中的str2替换成str3的结果
      </li>
      <ul>
        <li>定义: replace(str1,str2,str3)</li>
        <li>示例: replace('abcdcba','a', 'e') → 'ebcdcbe'</li>
      </ul>
    </ul>
  </div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator'

/** 隐私模块 */
@Component
export default class FormulaGuide extends Vue {}
</script>

<style lang="less" scoped>
.page-privacy-agreement {
  display: block;
  margin: 0 auto;
  min-width: 1100px;
  padding: 40px;
  width: 80vw;

  .title {
    font-size: 36px;
    font-weight: 700;
    text-align: center;
  }

  .title-lv2 {
    font-size: 20px;
    font-weight: 600;
    margin: 15px 0;
  }

  .content-item {
    color: #000;
  }
}
</style>
